﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Turnero.DAOs;

namespace Tunero.Paciente
{
    public partial class frmGestionModificarPaciente : Form
    {
        public frmGestionModificarPaciente()
        {
            InitializeComponent();
            cbxFiltro.SelectedIndex = 1;            
        }

        private void cbxFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbxFiltro.Text.Equals("Apellidos y nombres"))
            {
                lblTipoDoc.Enabled = false;
                lblNroDoc.Enabled = false;
                lblApellidos.Enabled = true;
                lblNombres.Enabled = true;
                txtNroDoc.Text = "";
                cbxTipoDoc.Text = "D.N.I.";
                txtApellidos.Text = "";
                txtNombres.Text = "";
                txtNroDoc.Enabled = false;
                cbxTipoDoc.Enabled = false;
                txtApellidos.Enabled = true;
                txtNombres.Enabled = true;
                txtApellidos.Focus();
            }

            if (cbxFiltro.Text.Equals("Tipo y nro. de documento"))
            {
                lblTipoDoc.Enabled = true;
                lblNroDoc.Enabled = true;
                lblApellidos.Enabled = false;
                lblNombres.Enabled = false;
                txtApellidos.Text = "";
                txtNombres.Text = "";
                txtNroDoc.Text = "";
                txtNroDoc.Enabled = true;
                cbxTipoDoc.Enabled = true;
                txtApellidos.Enabled = false;
                txtNombres.Enabled = false;
                cbxTipoDoc.Text = "D.N.I.";
                txtNroDoc.Focus();
            }
        }

        private void frmGestionModificarPaciente_Shown(object sender, EventArgs e)
        {
            txtNroDoc.Focus();
        }

        private void txtApellidos_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroApeNom();
            gridPacientes.AutoResizeColumns();
        }

        private void cargarTablaConFiltroApeNom()
        {
            DAO_Pacientes dp = new DAO_Pacientes();
            DataTable dt = new DataTable();

                String ape, nom;
                ape = txtApellidos.Text.Trim();
                nom = txtNombres.Text.Trim();

                dt = dp.damePacientesPorNombreYApellido(ape, nom);
                gridPacientes.DataSource = dt;
                setHeaders();
        }

        private void txtNombres_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroApeNom();
            gridPacientes.AutoResizeColumns();
        }

        private void txtNroDoc_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroDocTipo();
            gridPacientes.AutoResizeColumns();
        }

        private void cargarTablaConFiltroDocTipo()
        {
            DAO_Pacientes dp = new DAO_Pacientes();
            DataTable dt = new DataTable();

           
                String tipodoc, nrodoc;
                tipodoc = cbxTipoDoc.Text;
                nrodoc = txtNroDoc.Text;

                dt = dp.damePacientesPorTipoYNroDoc(tipodoc, nrodoc);
                gridPacientes.DataSource = dt;
                setHeaders();
        }

        private void cbxTipoDoc_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroDocTipo();
            gridPacientes.AutoResizeColumns();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            Turnero.Paciente.frmRegistrarPaciente rp = new Turnero.Paciente.frmRegistrarPaciente();            
            rp.ShowDialog();
        }

        private void frmGestionModificarPaciente_Activated(object sender, EventArgs e)
        {
            mostrarTodosLosPacientes();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            Int32 idpaciente;
            idpaciente = Convert.ToInt32(gridPacientes.CurrentRow.Cells[0].Value);
            if (MessageBox.Show("Está seguro que desea eliminar el paciente?", "Eliminación Paciente",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    == DialogResult.Yes)
            {                
                DAO_Pacientes dp = new DAO_Pacientes();
                bool resultado;
                resultado = dp.BorrarPaciente(idpaciente);
                if (resultado == true)
                {                   
                    MessageBox.Show("El paciente ha sido eliminado con éxito");
                }
                else
                {
                    MessageBox.Show("El paciente no pudo ser eliminado");
                }                
            }
            mostrarTodosLosPacientes();
        }

        public void mostrarTodosLosPacientes()
        {
            gridPacientes.DataSource = null;
            DAO_Pacientes dp = new DAO_Pacientes();
            DataTable dt = new DataTable();
                      
            dt = dp.dameTodosLosPacientes();
            gridPacientes.DataSource = dt;
            setHeaders();
            gridPacientes.AutoResizeColumns();
            gridPacientes.Refresh();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            string cod, ape, nom, tipodoc, nrodoc, domicilio, localidad, sexo, fechanac, tel, cel, email, cuit, obs;
            cod = gridPacientes.CurrentRow.Cells[0].Value.ToString();
            ape = gridPacientes.CurrentRow.Cells[1].Value.ToString();
            nom = gridPacientes.CurrentRow.Cells[2].Value.ToString();
            tipodoc = gridPacientes.CurrentRow.Cells[3].Value.ToString();
            nrodoc = gridPacientes.CurrentRow.Cells[4].Value.ToString();
            domicilio = gridPacientes.CurrentRow.Cells[5].Value.ToString();
            localidad = gridPacientes.CurrentRow.Cells[6].Value.ToString();
            sexo = gridPacientes.CurrentRow.Cells[7].Value.ToString();
            fechanac = gridPacientes.CurrentRow.Cells[8].Value.ToString();
            tel = gridPacientes.CurrentRow.Cells[9].Value.ToString();
            cel = gridPacientes.CurrentRow.Cells[10].Value.ToString();
            email = gridPacientes.CurrentRow.Cells[11].Value.ToString();
            cuit = gridPacientes.CurrentRow.Cells[12].Value.ToString();
            obs = gridPacientes.CurrentRow.Cells[13].Value.ToString();

            Turnero.Entidades.Paciente paciente = new Turnero.Entidades.Paciente(cod, ape, nom, tipodoc, nrodoc, domicilio, localidad, sexo, fechanac, tel, cel, email, obs);            

            Turnero.Paciente.frmModificarPaciente mp = new Turnero.Paciente.frmModificarPaciente(paciente);
            mp.ShowDialog();
        }

        private void frmGestionModificarPaciente_Load(object sender, EventArgs e)
        {

        }

        private void setHeaders()
        {
            gridPacientes.Columns[0].HeaderText = "Cod.";
            gridPacientes.Columns[1].HeaderText = "Apellidos";
            gridPacientes.Columns[2].HeaderText = "Nombres";            
            gridPacientes.Columns[3].HeaderText = "Tipo Doc.";
            gridPacientes.Columns[4].HeaderText = "Nro. Doc.";
            gridPacientes.Columns[5].HeaderText = "Domicilio";
            gridPacientes.Columns[6].HeaderText = "Localidad";
            gridPacientes.Columns[7].HeaderText = "Sexo";
            gridPacientes.Columns[8].HeaderText = "Fecha Nac.";
            gridPacientes.Columns[9].HeaderText = "Telefono";
            gridPacientes.Columns[10].HeaderText = "Celular";
            gridPacientes.Columns[11].HeaderText = "Email";
            gridPacientes.Columns[12].HeaderText = "Cuit/Cuil";
            gridPacientes.Columns[13].HeaderText = "Observaciones";
        }


    }
}
